package com.ruoyi.common.base.biz.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.BizBaseEntity;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * BizBaseMapper
 *
 * @author ZhengJun
 * @since 2023/6/7 20:57
 */
public interface BaseMapper<E extends BizBaseEntity, Do extends E, Po extends E> extends com.baomidou.mybatisplus.core.mapper.BaseMapper<E> {

    /**
     * 数据分页
     *
     * @param pageDo      请求信息
     * @param conditionDo 条件信息
     * @return 条件信息
     */
    Page<Po> pagingPoByDo(Page<Do> pageDo, @Param("conditionDo") Do conditionDo);

    /**
     * 根据条件信息获取数据信息
     *
     * @param conditionDo 筛选条件信息
     * @return 数据列表信息
     */
    List<Po> listPoByDo(@Param("conditionDo") Do conditionDo);

    /**
     * 根据条件获取数据信息
     *
     * @param conditionDo 条件信息
     * @return 数据信息
     */
    Po getPoByDo(@Param("conditionDo") Do conditionDo);

    /**
     * 根据 数据id 获取数据信息
     *
     * @param id 数据id
     * @return 数据信息
     */
    Po getPoById(@Param("id") Long id);
}
